package com.itheima.utils;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import java.util.HashMap;
import java.util.Map;

public class QRCodeUtils {
    /**
     *  生成二维码 QRCodeController里调用了
     * @param content 二维码的内容
     * @return BitMatrix对象
     * */
    public static BitMatrix createCode(String content) throws Exception {

        // 通过zxing生成二维码信息,保存到本地
        QRCodeWriter writer = new QRCodeWriter();
        //其他参数，如字符集编码
        Map<EncodeHintType, Object> hints = new HashMap<>();
        hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
        //容错级别为H
        hints.put(EncodeHintType.ERROR_CORRECTION , ErrorCorrectionLevel.H);
        /**
         * 参数基本配置
         * 1.二维码信息
         * 2.图片类型
         * 3.二维码宽度
         * 4.二维码长度
         * 5.其他参数，如字符集编码
         */
        BitMatrix bt = writer.encode(content, BarcodeFormat.QR_CODE, 200, 200, hints);
        return bt;
    }
}
